/**
 * Base types implementaion
 *
 * \file base_type_impl.cpp
 * \author tomby
 * \date 04-01-2009
 **/

/*  Copyright (C) 2009  Tomas 'tomby' Bily

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */

#include "dbc-sys.hpp"

using namespace dbc;
using namespace dbc::temporal;
using namespace dbc::peel;

ENTITY_IMPL0 (Entity, "Entity");
ENTITY_IMPL1 (PCEntity, "PCEntity", Entity);
ENTITY_IMPL1 (StampableEntity, "StampableEntity", PCEntity);
ENTITY_IMPL1 (Node, "Node", StampableEntity);
ENTITY_IMPL1 (Edge, "Edge", StampableEntity);
ENTITY_IMPL1 (Graph, "Graph", Node);
ENTITY_IMPL1 (SimGraph, "SimGraph", Graph);

PCEntity::Products PCEntity::null;

PCEntity::PCEntity (bool alloc_pc_containers)
{
  if (alloc_pc_containers)
    {
      producers = EcontainerPtr (new Econtainer);
      consumers = EcontainerPtr (new Econtainer);
    }
}
